package com.hyt.it.ogt.data.mapper.kw;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hyt.it.ogt.data.model.dto.CandidatePaperDTO;
import com.hyt.it.ogt.data.model.dto.PjConfigCode;
import com.hyt.it.ogt.data.model.dto.StudentExtendDTO;
import com.hyt.it.ogt.data.model.entity.kw.ExamCandidate;
import com.hyt.it.ogt.data.model.entity.pj.Subject;
import com.hyt.it.ogt.data.model.vo.kw.CandidateSubjectInfoVO;
import com.hyt.it.ogt.data.model.vo.kw.PaperSubjectiveInfoVO;
import com.hyt.it.ogt.data.model.vo.kw.ProjectVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 考试-考生 Mapper 接口
 * </p>
 *
 * @author 刘恒活
 * @since 2020-05-15
 */
public interface ExamCandidateMapper extends BaseMapper<ExamCandidate> {

	List<CandidatePaperDTO> getCandidatePaper(@Param("examId") String examId, @Param("admissionNumber") String admissionNumber, @Param("commit") Integer commit);

	/**
	 * 为获取评卷数据成功的考生打上标记
	 * 
	 * @param candidateIds
	 *            考生id
	 * @return 成功条数
	 */
	int markCandidateByCandidateIds(List<String> candidateIds, @Param("examId") String examId);

	/**
	 * 为获取评卷数据成功的考生打上标记
	 * 
	 * @param candidateIds
	 *            考生id
	 * @return 成功条数
	 */
	int markCandidateByCandidateId(@Param("admissionNumber") String admissionNumber, @Param("examId") String examId);

	/**
	 * 获取考试任务信息
	 * 
	 * @param examId
	 *            考试任务id
	 * @return 考试任务信息
	 */
	ProjectVO getProjectInfo(@Param("examId") String examId);
	
	
	
	
    /**
     * 获取考试的科目信息
     * @param projectId
     * @param admissionNum
     * @return
     */
    List<Subject> getExamSubject(@Param("examId") String projectId);

	/**
	 * 获取考生科目信息
	 * @param projectId
	 * @param admissionNum
	 * @return
	 */
	List<Subject> getCandidateSubject(@Param("examId") String projectId, String admissionNumber);


	/**
	 * 获取考生信息采集
	 * @param examId
	 * @param admissionNumber
	 * @return
	 */
	List<PjConfigCode> getCandidateForSubjectStudent(@Param("examId") String examId, String admissionNumber);

	/**
	 * 获取考生试卷信息
	 * @param projectId
	 * @param admissionNum
	 * @return
	 */
	List<StudentExtendDTO> getCandidateInfo(@Param("examId") String projectId, String admissionNumber);

	/**
	 * 获取考生姓名
	 * @param examId
	 * @param admissionNumber
	 * @return
	 */
	String getCandidateName(@Param("configCodeName") String configCodeName, @Param("examId") String examId, @Param("admissionNumber") String admissionNumber);

	/**
	 * 获取试卷信息
	 * @param examId
	 * @param packageId
	 * @param packageVersion
	 * @return
	 */
	List<PaperSubjectiveInfoVO> getPaperSubjectiveInfo(String examId);

	/**
	 * 标记考生
	 * @param examId
	 * @param admissionNumber
	 * @return
	 */
	int markCandidate(String examId, String admissionNumber);

	/**
	 * 获取考生科目信息
	 * @param examId
	 * @param admissionNumber
	 * @return
	 */
	List<CandidateSubjectInfoVO> getCandidateSubjectInfo(String examId, String admissionNumber);

	/**
	 * 获取考试id
	 * @param examId
	 * @return
	 */
	String getTaskId(String examId);

}
